/*#include <string.h>
#include <setjmp.h>
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <unistd.h>
#include <signal.h>
#include <stddef.h>
#include <sys/types.h>
#include <sys/shm.h>
#include <errno.h>
#include <fcntl.h>
#include <sys/mman.h>
#include <sys/wait.h>
#include <sys/ipc.h>
*/


//#define Num_Proc 9//A,B,C,CCI,clock,timeout,KB,CRT,null
#define Num_Proc 3//This is only for partial  implementation(KB,CRT,P)
#define Num_PriorityLevels 4
#define Num_BlockedTypes 2

//blocked-on-receive,blocked-on-resource
#define Num_BlockedPriorityLevels 4

//blocked on receive queue has 4 priority levels
//define blocked type and the according number here
#define Num_MsgEnv 50
#define Max_Env_Data 256
#define TraceBufferSize 16
#define StackSize 16384
#define BUFFERSIZE 20

//define return codes
#define success 0
#define error1 1 //process not found
#define error2 2 //unknown

//define PIDs
//to help make the code easier to understand
/*#define ProcessA 0
#define ProcessB 1
#define ProcessC 2
#define CCI 3
#define KB 4
#define CRT 5
#define Clock 6
#define Timer 7
#define NullProcess 8*/

#define KB 0			//This is only for partial implementation
#define CRT 1			//This is only for partial implementation
#define ProcessP 2	//This is only for partial implementation

//defined PCB status code here
#define I_Process 0
#define Executing 1
#define Ready 2
#define Blocked_On_Receive 3
#define Blocked_On_Resource 4
#define NEVER_BLK_PROC 5;//this is only for partial implemenation

//defined msg types here
#define wakeup_code 0
#define display_ack 1
#define console_input 2
#define request_input 3
#define request_output 4
